# week 05
# 列表的入门
# 用户输入与定制化打印（打印出自己规定的格式）

# 一.input
# 第一种
name = input("name:")
age = input("age:")
job = input("job:")
salary = input("salary:")

# 以name为基准（INFO ''' + name + '''）将内容动态得打印出来,字符串的拼接 用 "+" 符号来拼接
info = '''-----------INFO ''' + name + '''----------
name:'''+name+'''
age:'''+age+'''
job:'''+job+'''
salary:'''+salary
print(info)

# 优化使用
# 第二种，以%s为基准
info_ss = '''-----------INFO %s----------
name:%s
age:%s
job:%s
salary:%s''' % (name, name, age, job, salary)
print(info_ss)
# 对比二者区别
# 优势 1.减少+的使用，简洁美观。 2.将所需内容包含在一个大的字符串里面
# 劣势 1.顺序一乱打印结果不准确。 2.不适用于过大内容的数据库。

# 第三种
# 在第二种%s的基础上优化，采用format格式化字符串，可以一一对应内容，清晰出错率低。
info_sss = '''-----------INFO {姓名}----------
name:{姓名}
age:{年龄}
job:{工作}
salary:{薪水}
'''.format(年龄=age, 姓名=name, 工作=job, 薪水=salary)
print(info_sss)


# 二.url 网页
# 1.以学校网站为例
url = "https://www.nfu.edu.cn/"  # 官网首页
# 目标获取官网所有url网页
# 第一种链接方式
高教动态 = "gjdt"
url_页面 = ".htm"
url_页面细节不变 = "/index"
for i in range(1, 27):
    完整的高教动态所有页面url = url + 高教动态 + url_页面细节不变 + str(i) + url_页面
    print(完整的高教动态所有页面url)
#  url可缩写 可具体写出来网址（见第二种方式

# 第二种链接方式
vv = input("内容:")
for i in range(1, 27):
   完整的高教动态所有页面url = "https://www.nfu.edu.cn/{内容}/index{页码}.htm".format(页码=str(i), 内容=vv)
   print(完整的高教动态所有页面url)

# 2.以 acfun为例
# acfun娱乐区为例 三个例子 搞笑区=list206 鬼畜区=list87 明星区=list188
fq = ['list206', 'list87', 'list188']
url = "https://www.acfun.cn/"
ym = [1, 2, 3, 4, 5]
# 页面后缀 = /index.htm?sortField=rankScore&duration=all&date=default&page=
for g in fq:
    for v in ym:
        娱乐区所有页面url = 'https://www.acfun.cn/v/{分区}/index.htm?sortField=rankScore&duration=all&date=default&page={页面}'.format(分区=str(g), 页面=str(v))
        print(娱乐区所有页面url)


# 三.list
# 列表入门学习
# 1.用模拟用户登录
user_data = "wy,wyt,wyy,wyy"
print(user_data[0])  # 为零号位也就是w，首位为0.
print(user_data[1])  # 以此类推
print(user_data[2])
# 2.用list来模拟用户数据
user_data_list = [["zc", 123435, 19], ["Jack", 463434, 23], ["Alex", 583495, 25], ["Marry", 438294, 27]]
password_list = [123435, 463434, 583495, 438294]
age = [19, 20, 22, 25]
# list是从左往右取值的。
print(user_data_list[1])
# 切片 slice ，右边的值取不到 例如[0:3] 索引为3的值取不到
print(user_data_list[0:2])
# 0可以忽略不写，当0（第一位也要取到的时候）
print(user_data_list[:3])
# 负值取值 从右往左数
print(user_data_list[-1])
# list应该是[-3:],不能写[-3:0]
# 取全部值
print(user_data_list[:])
'''
取值为空即出现了错误。
'''
# 3.三个重要的值
# [start:stop:step] 分别对应开始值，结束值，步长（间隔）。
# 开始值默认为0，结束值默认为方框内规定的数字，步长默认为1（下面实例中改为2）
num = list(range(6))  # 从0到6，但6取不到，默认从0开始，0取得到。
print(num)            # 输出上面的列表
print(num[0:6:2])     # 0为开始值，6为结束值，2为步长。




